/**
 * Copyright (c) 2008, Daniel Gee. All Rights reserved.
 * See LICENSE.txt for more details.
 */
package com.rl.dungeon.fov;

import com.rl.dungeon.Location;

/**
 * VisitEffect provides a single function, which should change the state of the game in some way.
 * The most common form is probably for a torch to provide light, but this could perform any spread
 * based calculation. The damage from an explosive blast, for example, could be resolved though the
 * use of a special case VisitEffect along with the normal FOV code.
 * 
 * @author Daniel Gee
 */
public interface VisitEffect
{
	/**
	 * Called whenever the FOV calculations have determined that the orgin square does have a view
	 * to the given location. For any single FOV calculation, this method will be called on a given
	 * square exactly 0 or 1 times.
	 * 
	 * @param location
	 *            the location to perform the effect at.
	 */
	public void performEffect(Location location);
}
